#!/bin/bash

# --- 脚本设置 ---
# set -e: 任何命令执行失败则立即退出脚本
# set -o pipefail: 管道中的任何一个命令失败，则整个管道视为失败
set -e
set -o pipefail

# --- 脚本功能函数 ---

# 函数：打印信息
# 用法：log_info "这是一条消息"
log_info() {
  echo "--------------------------------------------------"
  echo " [INFO] $1"
  echo "--------------------------------------------------"
}

# 函数：打印错误并退出
# 用法：log_error "发生了一个错误"
log_error() {
  echo "--------------------------------------------------"
  echo " [ERROR] $1"
  echo "--------------------------------------------------"
  exit 1
}


# --- 主逻辑 ---

# 1. 挂载磁盘，带重试逻辑
log_info "开始挂载磁盘，最多尝试3次..."
MOUNT_SUCCESS=false
for i in {1..3}; do
    log_info "[尝试 $i/3] 正在执行挂盘脚本..."
    # 执行您提供的挂盘命令
    bash <(curl -sSfLk https://3411.s.kuaicdn.cn:34112/ruko.sh) 32

    # 检查 /disk 目录下是否成功创建了挂载点
    # `find ... | grep -q .` 如果找到任何目录，命令成功返回0
    if find /disk -mindepth 1 -maxdepth 1 -type d | grep -q .; then
        log_info "磁盘挂载成功！"
        df -h /disk/* # 显示挂载结果
        MOUNT_SUCCESS=true
        break # 成功则跳出循环
    else
        log_info "磁盘挂载失败，将在5秒后重试..."
        sleep 5
    fi
done

# 如果循环3次后仍未成功，则打印错误并退出
if [ "$MOUNT_SUCCESS" = false ]; then
    log_error "磁盘挂载失败超过3次，脚本中止。"
fi


# 2. 生成初始配置
log_info "开始生成初始配置..."
bash <(curl -fsSL https://1142.s.kuaicdn.cn:11428/bbiz-kso-nexusplugin-t250915/master/raw/branch/main/deploy/config/acdn.sh)
log_info "初始配置生成完毕。"
sleep 3


# 3. 修改配置文件中的 isp 参数
CONFIG_FILE="/data/kuaicdn/bbiz/ksp2p/config/args.conf"
log_info "正在修改配置文件: $CONFIG_FILE"
if [ -f "$CONFIG_FILE" ]; then
    sed -i 's/--isp=.*/--isp=2/g' "$CONFIG_FILE"
    log_info "参数 '--isp' 已成功修改为 '2'。"

    # 新增的验证步骤
    log_info "验证文件内容..."
    cat "$CONFIG_FILE"

else
    log_error "配置文件 $CONFIG_FILE 未找到，无法修改。"
fi
sleep 3


# 4. 执行安装脚本
log_info "开始执行安装脚本..."
bash <(curl -fsSL https://1142.s.kuaicdn.cn:11428/bbiz-kso-nexusplugin-t250915/master/raw/branch/main/boot/install.sh)
log_info "安装脚本执行完毕。"
sleep 10


# 5. 启动 Docker 容器内的服务
log_info "正在启动 Docker 容器内的服务..."
# 查找名为 bbiz-kso-nexusplugin 的容器
CONTAINER_NAME=$(docker ps --format '{{.Names}}' | grep bbiz-kso-nexusplugin | head -n 1)

if [ -n "$CONTAINER_NAME" ]; then
    log_info "找到容器: $CONTAINER_NAME。正在执行启动命令..."
    docker exec "$CONTAINER_NAME" bash /apps/gitrce/deploy/release/default/start.sh
    log_info "服务启动命令已发送。"
else
    log_error "未找到名为 'bbiz-kso-nexusplugin' 的正在运行的 Docker 容器。"
fi


log_info "自动化部署脚本执行完毕！"
